package com.netdisk.service;
import com.netdisk.entity.File;
import com.netdisk.dto.request.file.CreateShareDTO;
import com.netdisk.dto.response.file.FileDTO;
import com.netdisk.dto.response.file.ShareDTO;
import io.swagger.v3.oas.annotations.parameters.RequestBody;

import java.util.List;

public interface ShareService {

    /**
     * 创建分享
     * @param createShareDTO
     * @return
     */
    ShareDTO createShare(@RequestBody CreateShareDTO createShareDTO);

    /**
     * 获取分享信息
     * @param shareId
     * @return
     */
    ShareDTO getShareInfoByShareId(String shareId);

    /**
     * File转FileDTO
     * @param file
     * @return
     */
    FileDTO toFileDTO(File file);

    /**
     * 根据用户id获取分享总数
     * @param userId
     * @return
     */
    Integer getShareCountById(Integer userId);

    /**
     * 根据用户Id获取分享列表
     * @param userId
     * @return
     */
    List<ShareDTO> getShareListById(Integer userId);

    /**
     * 取消分享
     * @param shareId
     * @param userId
     */
    void cancelShare(String shareId, Integer userId);
}
